جزوه · فصل سوم · جلسه ۳۵ · کار با fdisk ← بازگشت به فهرست
📘 فصل سوم · جلسه ۳۵ کار با fdisk و پارتیشن‌بندی
📅 تاریخ: شنبه، ۲۴ مرداد ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian (کالی) · 📦 Red Hat

▍ مقدمه

برای استفاده از یک دیسک در لینوکس، باید سه مرحله اصلی را طی کنیم:

  1. پارتیشن‌بندی (Partitioning): ایجاد بخش‌های مجزا روی دیسک با ابزارهایی مانند fdisk یا gdisk.
  2. فرمت کردن (Formatting): ایجاد سیستم فایل (مانند ext4, xfs) روی هر پارتیشن با دستور mkfs.
  3. نصب (Mount): متصل کردن پارتیشن به دایرکتوری (Mount Point) برای دسترسی به داده‌ها با دستور mount.
🔑 نکته مهم:

تمام این مراحل نیاز به دسترسی root دارند. قبل از شروع، مطمئن شوید که با sudo یا کاربر root وارد شده‌اید.

▍ مرحله اول: پارتیشن‌بندی با fdisk

fdisk یک ابزار خط فرمان برای مدیریت جدول پارتیشن در سیستم‌های MBR است. برای دیسک‌های GPT، بهتر است از gdisk یا parted استفاده کنید، اما fdisk نسخه‌های جدید از GPT نیز پشتیبانی می‌کند.

• مشاهده دیسک‌ها و پارتیشن‌ها

┌──(ya3in㉿kali)-[~] └─$ sudo fdisk -l

توضیح: این دستور لیست کامل دیسک‌ها و پارتیشن‌های موجود در سیستم را نمایش می‌دهد. اطلاعاتی مانند اندازه، نوع و جدول پارتیشن را نشان می‌دهد.

┌──(ya3in㉿kali)-[~] └─$ sudo fdisk -l /dev/sda

توضیح: نمایش اطلاعات فقط دیسک /dev/sda.

• ورود به محیط تعاملی fdisk

┌──(ya3in㉿kali)-[~] └─$ sudo fdisk /dev/sda Welcome to fdisk (util-linux 2.38.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help):

توضیح: وارد محیط تعاملی fdisk برای دیسک /dev/sda می‌شویم. در این محیط می‌توانیم پارتیشن‌ها را ایجاد، حذف یا تغییر دهیم.

• کلیدهای مهم در محیط fdisk

کلید توضیح
m نمایش راهنما (Help)
p نمایش جدول پارتیشن فعلی (Print)
n ایجاد پارتیشن جدید (New)
d حذف یک پارتیشن (Delete)
t تغییر نوع (Type) پارتیشن
w ذخیره تغییرات و خروج (Write)
q خروج بدون ذخیره تغییرات (Quit)
l لیست انواع پارتیشن‌های قابل انتخاب

• ایجاد یک پارتیشن جدید

مراحل ایجاد پارتیشن با fdisk

  1. دستور sudo fdisk /dev/sdX را اجرا کنید (X را با حرف دیسک خود جایگزین کنید).
  2. کلید n را بزنید تا پارتیشن جدید بسازید.
  3. نوع پارتیشن را انتخاب کنید:
    • p → پارتیشن اصلی (Primary) — حداکثر ۴ عدد
    • e → پارتیشن توسعه‌یافته (Extended) — برای ایجاد پارتیشن‌های منطقی
    • l → پارتیشن منطقی (Logical) — فقط درون Extended
  4. شماره پارتیشن را انتخاب کنید (پیش‌فرض را بپذیرید).
  5. سکتور شروع را مشخص کنید (پیش‌فرض را بپذیرید).
  6. سکتور پایان یا اندازه را مشخص کنید (مثلاً +10G برای ۱۰ گیگابایت).
  7. با w تغییرات را ذخیره کنید.
💡 مثال عملی:

فرض کنید می‌خواهیم روی دیسک /dev/sdb یک پارتیشن ۵ گیگابایتی با نوع Linux filesystem ایجاد کنیم:

┌──(ya3in㉿kali)-[~] └─$ sudo fdisk /dev/sdb Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-...): (Enter) Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-...): +5G Created a new partition 1 of type 'Linux' and of size 5 GiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.

• تغییر نوع پارتیشن

گاهی نیاز است نوع پارتیشن را تغییر دهید (مثلاً برای Swap یا LVM). با کلید t و سپس کد نوع، می‌توانید این کار را انجام دهید.

┌──(ya3in㉿kali)-[~] └─$ sudo fdisk /dev/sdb Command (m for help): t Partition number (1,2, default 1): 1 Hex code or alias (type L to list all): 82 Changed type of partition 'Linux' to 'Linux swap / Solaris'. Command (m for help): w

توضیح: کد 82 برای پارتیشن Swap استفاده می‌شود. برای دیدن لیست کامل کدها، کلید L را بزنید.

▍ مرحله دوم: فرمت کردن با mkfs

پس از ایجاد پارتیشن، باید روی آن یک سیستم فایل (Filesystem) ایجاد کنیم. این کار با دستور mkfs انجام می‌شود.

┌──(ya3in㉿kali)-[~] └─$ sudo mkfs.ext4 /dev/sdb1

توضیح: پارتیشن /dev/sdb1 را با سیستم فایل ext4 فرمت می‌کند. این رایج‌ترین سیستم فایل در لینوکس است.

┌──(ya3in㉿kali)-[~] └─$ sudo mkfs.xfs /dev/sdb1

توضیح: فرمت با سیستم فایل xfs (مناسب برای فایل‌های بزرگ و سرورها).

┌──(ya3in㉿kali)-[~] └─$ sudo mkswap /dev/sdb2 └─$ sudo swapon /dev/sdb2

توضیح: ایجاد و فعال‌سازی پارتیشن Swap.

💡 نکته:

برای دیدن لیست سیستم‌فایل‌های پشتیبانی‌شده، از دستور mkfs با Tab دو بار استفاده کنید یا دستور ls /sbin/mkfs.* را اجرا کنید.

▍ مرحله سوم: نصب (Mount) پارتیشن

پس از فرمت، باید پارتیشن را به یک دایرکتوری خالی (Mount Point) متصل کنید تا بتوانید به آن دسترسی داشته باشید.

• نصب موقتی

┌──(ya3in㉿kali)-[~] └─$ sudo mkdir /mnt/mydisk └─$ sudo mount /dev/sdb1 /mnt/mydisk

توضیح: پارتیشن /dev/sdb1 را به دایرکتوری /mnt/mydisk متصل می‌کند. حالا می‌توانید فایل‌ها را در این مسیر ذخیره کنید.

• مشاهده پارتیشن‌های نصب‌شده

┌──(ya3in㉿kali)-[~] └─$ mount | grep sdb1 /dev/sdb1 on /mnt/mydisk type ext4 (rw,relatime)

توضیح: تأیید می‌کند که پارتیشن به‌درستی نصب شده است.

┌──(ya3in㉿kali)-[~] └─$ df -h

توضیح: نمایش فضای دیسک و پارتیشن‌های نصب‌شده.

• نصب دائمی (با fstab)

برای اینکه پارتیشن پس از ری‌بوت نیز نصب بماند، باید آن را به فایل /etc/fstab اضافه کنید.

┌──(ya3in㉿kali)-[~] └─$ sudo nano /etc/fstab

یک خط به انتهای فایل اضافه کنید:

/dev/sdb1 /mnt/mydisk ext4 defaults 0 0

توضیح: این خط به سیستم می‌گوید که پارتیشن /dev/sdb1 را با سیستم فایل ext4 به /mnt/mydisk در زمان بوت نصب کند.

⚠️ هشدار:

قبل از ویرایش /etc/fstab، از دستور sudo mount -a برای تست خطوط جدید استفاده کنید. اگر خطایی وجود داشت، قبل از ری‌بوت آن را اصلاح کنید تا سیستم دچار مشکل نشود.

▍ جمع‌بندی و جدول خلاصه

مرحله دستور توضیح
پارتیشن‌بندی sudo fdisk /dev/sdX ورود به محیط تعاملی fdisk برای مدیریت پارتیشن‌ها
فرمت (ext4) sudo mkfs.ext4 /dev/sdX1 فرمت پارتیشن با سیستم فایل ext4
فرمت (xfs) sudo mkfs.xfs /dev/sdX1 فرمت پارتیشن با سیستم فایل xfs
نصب (Mount) sudo mount /dev/sdX1 /mnt/point نصب پارتیشن به یک دایرکتوری
خروج از نصب sudo umount /mnt/point جدا کردن پارتیشن از دایرکتوری (Unmount)
مشاهده نصب‌ها mount یا df -h مشاهده پارتیشن‌های نصب‌شده
✅ تمرین پیشنهادی:
  • با sudo fdisk -l دیسک‌های سیستم خود را شناسایی کنید.
  • اگر یک دیسک خالی در اختیار دارید، با fdisk یک پارتیشن جدید روی آن ایجاد کنید.
  • پارتیشن جدید را با mkfs.ext4 فرمت کنید.
  • آن را به یک دایرکتوری (مثلاً /mnt/test) mount کنید.
  • با df -h نتیجه را بررسی کنید.
  • پس از اتمام، با umount آن را جدا کنید.